package am.bll;

import am.bll.entity.AccountBook;
import am.exception.ArgumentNullException;
import am.exception.InvalidOperationException;
import am.exception.DatabaseException;

public interface BookEditor
{
    /**
     * 保存book实体当前的状态
     * @param book 账本实体, 保存着修改后的数据, Id必须被正确地设置
     * @throws ArgumentNullException book为null
     * @throws InvalidOperationException 数据库找不到book对应的实体
     * @throws DatabaseException 与数据库连接相关的异常
     */
    void editBook(AccountBook book) throws ArgumentNullException, InvalidOperationException, DatabaseException;
}
